package censo

import java.util.Date
import censo.Empresa
import censo.Fuente

import Packtrait.CriterioDeChequeoConsistencia


abstract class Registro extends CriterioDeChequeoConsistencia {

  var _anio: Int = _
  var _montoTotalDeVentas: Double = _ // no puede ser > 0
  var _montoTotalDeGanancias: Double = _
  var _cargaDeDatos: Date = _
  var _empresa: Empresa = _
  var _anioQueObtuvoInformacion: Int = _
  
  var _estrategia: StrategyConsistente = _
  
  def estrategia = _estrategia 
  def estrategia_(es : StrategyConsistente) = _estrategia = es

  def anioQueSeObtuvoInformacion = _anioQueObtuvoInformacion 
  def anioQueSeObtuvoInformacion_ (anio : Int) = _anioQueObtuvoInformacion = anio
  def anio() = _anio
  def anio_=(nuevoAnio: Int) = _anio = nuevoAnio
  def anioQueSeCargoElDato():Int=this.cargaDeDatos.getYear()
  def montoTotalDeVentas = _montoTotalDeVentas
  def montoTotalDeVentas_=(nuevoMonto: Double) = _montoTotalDeVentas = nuevoMonto
  def montoTotalDeGanancias = _montoTotalDeGanancias
  def montoTotalDeGanancias_=(nuevoMonto: Double) = _montoTotalDeGanancias = nuevoMonto
  def cargaDeDatos = _cargaDeDatos
  def cargaDeDatos_=(nuevaFecha: Date) = _cargaDeDatos = nuevaFecha
  def tasaDeGanancia(): Double = (this.montoTotalDeGanancias / this.montoTotalDeVentas) * 100
  def empresa() = _empresa
  def nombreDeLaProvincia(): Provincia {}
  def nombreEmpresasConVentasMayorA(valorAComparar: Double): Boolean {}
  def soyRegistroDeEmpresa: Boolean {}
  def nombreDeLaEmpresa(): String {}
  //  			def nombreDeLaEmpresa:String{}
  def getFuente: Fuente {}
  //  			def getEmpresa:Empresa{}


  var re : Registro = new RegistroDeEmpresa
  re.esConsistenteMixin(this)
  

 //override def coincidenciaDeProvincias():Boolean=true


}